<?php
//session_start();
require_once 'CMS/Util.php';
require_once 'CMS/Mvc/BaseController.php';
require_once 'CMS/Mvc/BaseUserController.php';
require_once 'CMS/UserCommon.php';
require_once 'CMS/User.php';
//Người tạo : Nguyễn Huỳnh Đại Thành- Team 3
//Module 	: Statistic
//Chức năng	: thống kê trang web
 
class Statistic_IndexController{

	public function init(){
		parent::init();
	}

	//Action index thục hiện chức năng show thông tin của module
	public function indexAction(){
		
		/*========== Start Load Language ==========*/
		$language = new Language(APPLICATION_PATH . '/widgets/statistic');
		if(isset($_SESSION['language']))
		{
			$language_id = $_SESSION['language'];
			$tbLanguage = new Language_Model_Language();
			$name = $tbLanguage->getNameLanguage($language_id);
			$language->load($name['name']);
		}
		else
			$language->load('Default');		
		/*========== End Load Language ==========*/
			
		/*========== Start Get Text ==============*/
		$this->view->slonline 		= $language->get('text_slonline');
		$this->view->sltruycapngay 		= $language->get('text_sltruycapngay');
		$this->view->sltruycapthang 	= $language->get('text_sltruycapthang');
		/*========== End Text ==============*/
		
		
		$uo_sessionTime=1;
		$uo_ip=$_SERVER['REMOTE_ADDR'];
		$session = new Zend_Session_Namespace('login.auth');
		if(isset($session->name_user))
			$uo_un=$session->name_user;
			else 
				$uo_un="undefine";
		$uo_time=mktime();
		$data=array('visitor'=>$uo_ip,'lastvisit'=>$uo_time,'username'=>$uo_un);
		
		//Start------Check Input Parameter
		$path = APPLICATION_PATH."/widgets/statistic/";
		$xmlconfig = new SimpleXMLElement($path."config.xml",null,true);//Read config.xml
		//End--------Check Input Parameter
		
		//Start------Khai báo các parameter
		$tb_users_online = new Statistic_Model_Usersonline();
		$tb_statistic= new Statistic_Model_Statistic();
		//End--------Khai báo các parameter
		
		//Start------thực hiện delete trong bảng users_online nếu user luu trong db quá $uo_sessionTime
		$tb_users_online->delete_session($uo_sessionTime);
		//End--------Delete
		//Start------chèn hoặc cập nhật thông tin user vào db 
		$tb_users_online->update_session($uo_ip, $uo_time, $uo_un, $data);
		//End--------cập nhật
		// truyền biến thống kê qua view
		$this->view->online = $tb_users_online->count();
		// end truyền biến
			$now= getdate();
		$currentDate = $now["mday"].'/' . $now["mon"].'/'  . $now["year"]; 
		
		//
		//kiểm tra time life của sesion
		$kt=time();
		$sesion_time_life= 10;// tinh bằng s, ai review có thay dổi để  test :D
		if(isset($_SESSION['last_activity']) &&($kt-$_SESSION['last_activity']>=$sesion_time_life) )
		{
			unset($_SESSION['last_activity']);
		}
		if(!isset($_SESSION['last_activity']))
		{
			$_SESSION['last_activity']=time();
		//start----- thực hiện add hits vo db, nếu trong ngày thì cập nhật hits,ngược lại thì thêm mới ngày
			$tb_statistic->addhits($currentDate);
		}
		
		/************ Start check permission *********/
			$user = new User();
			$user->init();
			$hasmodify = $user->modifiy_widget($xmlconfig->name);
			$this->view->permission = $hasmodify;
			/************ End check user permission *********/
		
		
		// show data
	
		$hit_day= $tb_statistic->counthits_day($currentDate);
		$hit_month=$tb_statistic->counthits_month($now["mon"]);
		
		
		$this->view->hits_day=$hit_day;
		$this->view->hits_month=$hit_month;
		//truyen title
        $titleXML = 'title'.$name['name'];
        if(isset($xmlconfig->$titleXML))
        	$this->view->title = $xmlconfig->$titleXML;
        else
        	$this->view->title = $xmlconfig->titleDefault;
		
	}
	
}